This invention relates to a method for the automatic generation of a multivariable, dynamic, control process on a programmable machine. Microfiche appendices A, B, and C, including 4 microfiche containing a total of 265 frames (pages), set out selected user manuals and documentation from a copyrighted commercial software package distributed by the assignee of this patent document under the trademark STAR, STAR-GEN, and STAR-EDIT respectively. Permission is granted to make copies of the appendices solely in connection with the making of facsimile copies of this patent document in accordance with applicable law; all other rights are reserved, and all other reproduction, distribution, creation of derivative works based on the contents, public display, and public performance of the microfiche appendices or any part thereof are prohibited by the copyright laws.
The male gender is used from time to time herein for convenience and should be understood to encompass the female gender as well.
One traditional type of control process is illustrated in FIG. 1a. In this example, the goal is to maintain both the temperature and fluid level in a tank 100 within predetermined ranges. The rates of hot and cold inflow are controlled by input valves 105 and 110 respectively, while the rate of outflow is controlled by an output valve 115. Temperature sensor 120 is used to control the tank's temperature via the hot water input valve 105. Level sensor 125 is used to control the tank's level via output valve 115.
One difficulty in a control system such as that shown in FIG. 1a is that the relationship between fluid level and temperature is not as straightforward as that assumed in the figure. For example, the hot water input valve 105 can affect both the temperature and the level of the tank's fluid. Potentially complex interactions between the control elements (e.g., input valves 105 and 110 and output valve 115) result in a lack of precise control of the tank's fluid level and temperature.
A technique known as multivariable control theory has been developed to address this type of problem. FIG. 1b illustrates a multivariable control system approach to maintaining the temperature and fluid level in the system introduced in FIG. 1a. Here, sensors 120 and 125 provide input to a (mathematical) model 130 of the fluid-tank system that is being controlled. The process response relationships between input and output valve positions and the tank's level and temperature are explicitly captured in the system's model. Multivariable control techniques allow a more precise and robust control mechanism to be specified for a given problem. The improved control permitted by this approach is the reason for pursuing the more complex task of specifying and designing multivariable control systems.
In a traditional approach to creating a computer program for process control, shown in FIG. 2, system-specific information relating to the program such as the method for accessing the data and the requirements of the code are incorporated throughout a custom code 205 created by a programmer, who would sit at a programmer's terminal 220 and actually edit that information into the custom code. Examples of such information could include whether character strings should be enclosed within single-quotes or double quotes or whether integers should be 2-bytes or 4-bytes long. Similarly, the problem-specific information such as the number of variables in a problem and the names of each variable would also be entered into the custom code by a programmer.
Another type of problem-specific information that may need to be entered by a programmer creating custom code is the location of the given problem's sensor values, i.e., the locations of these data in the database 215 where the database is typically a group of memory locations in the process control computer 200.
Another aspect of the process control program is the particular information that is specific to the process to be controlled. Process-specific information might include control target values and control limit values. For instance, the desired temperature of the tank 100 in FIG. 1a could be a control target value while the positional limits of the hot and cold water valves, 105 and 110 respectively, could be control limit values.
Variables such as control priorities and the process's model information could also be entered into the process control computer 200 by an engineer sitting at an operator's console 225. This type of information could be stored in a data file 210. While shown as a distinct element in FIG. 2, this data file 210 could be a part of the database 215. That is, it could be in the memory of the process control computer.
When the process control program runs in the process control computer, it would then access the data from the database and calculate new values for the manipulated variables (e.g., the hot and cold water valve positions and the output valve position of FIG. 1). These newly calculated values could then be stored into the database 215. Once stored, these values could be sent to the process 230 being controlled.
As an example, data flow 234 could indicate that new targets for the process's valves (hot cold and outlet) are sent out to the plant. In response to these changes in the manipulated variables, sensors such as the tank level 125 and temperature 120 would change and the new values of these sensor readings are brought into the process control computer via the data flow shown as arrow 232.
Among the problems that are inherent in creating a computer program using this traditional method are that the number of variables and number of data locations is, possibly, very large and, therefore, the amount of custom code that must be created is also very large. This can lead to two problems: 1) a large amount of time is consumed in creating a custom code, and 2) programming is error-prone and, as such, the custom code could have a lot of errors that need to be found and removed.
In contrast, the method of this invention captures and automates the mechanism of data entry and the creation of the custom code 205, reducing the amount of time required as well as the number of errors that are introduced therein. The automatically generated control program can, through a suitable interface, be used to control a target system such as that shown in FIG. 1. Other examples of systems that can be controlled in this manner include, without limitation, a mechanical lathe or milling tool, a concrete kiln, a wave soldering system, paper mill, and distillation column.